<?php

class PdoAdmin extends PdoConnect {

    public function create(admin $admin) {
        try {
            $this->open();
            $sql = "INSERT INTO `administrateur`(IDADMIN, PSEUDOADMIN, NOMADMIN, PRENOMADMIN, MOTDEPASSEADMIN, ADRESSEELECADMIN) VALUES(?, ?, ?, ?, ?, ?)";

            $prep = $this->pdo->prepare($sql);

            $prep->bindValue(1, $admin->getIdAdmin(), PDO::PARAM_INT);
            $prep->bindValue(2, $admin->getPseudoAdmin(), PDO::PARAM_STR);
            $prep->bindValue(3, $admin->getNomAdmin(), PDO::PARAM_STR);
            $prep->bindValue(4, $admin->getPrenomAdmin(), PDO::PARAM_STR);
            $prep->bindValue(5, $admin->getMotdePasseAdmin(), PDO::PARAM_STR);
            $prep->bindValue(6, $admin->getAdresseelecAdmin(), PDO::PARAM_STR);

            $prep->execute();
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function readAll() {
        try {
            $this->open();
            $sql = "SELECT * FROM `administrateur` ORDER BY PSEUDOADMIN";
            $prep = $this->pdo->prepare($sql);

            $prep->execute();
            $prep->setFetchMode(PDO::FETCH_ASSOC);


            return $prep;
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function readOne($IdAdmin) {
        try {
            $this->open();
            $sql = "SELECT * FROM `administrateur` WHERE IDADMIN=$IdAdmin";
            $prep = $this->pdo->prepare($sql);

            $prep->execute();

            $admin = new Admin();
            $ligne = $prep->fetch(PDO::FETCH_OBJ);
            $admin->setIdAdmin($ligne->IDADMIN);
            $admin->setPseudoAdmin($ligne->PSEUDOADMIN);
            $admin->setNomAdmin($ligne->NOMADMIN);
            $admin->setPrenomAdmin($ligne->PRENOMADMIN);
            $admin->setMotdePasseAdmin($ligne->MOTDEPASSEADMIN);
            $admin->setAdresseelecAdmin($ligne->ADRESSEELECADMIN);

            return $admin;
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function delete(admin $admin) {

        try {
            $this->open();
            $sql = "DELETE FROM administrateur WHERE IDADMIN=?";

            $prep = $this->pdo->prepare($sql);


            $prep->bindValue(1, $admin->getIdAdmin(), PDO::PARAM_INT);


            $prep->execute();
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function update(admin $admin) {
        try {

            $this->open();
            $sql = "UPDATE administrateur SET PSEUDOADMIN= ?, NOMADMIN=? ,PRENOMADMIN=?,MOTDEPASSEADMIN=?, ADRESSEELECADMIN= ? WHERE IDADMIN= ?";

            $prep = $this->pdo->prepare($sql);


            $prep->bindValue(1, $admin->getPseudoAdmin(), PDO::PARAM_STR);
            $prep->bindValue(2, $admin->getNomAdmin(), PDO::PARAM_STR);
            $prep->bindValue(3, $admin->getPrenomAdmin(), PDO::PARAM_STR);
            $prep->bindValue(4, $admin->getMotdePasseAdmin(), PDO::PARAM_STR);
            $prep->bindValue(5, $admin->getAdresseelecAdmin(), PDO::PARAM_STR);
            $prep->bindValue(6, $admin->getIdAdmin(), PDO::PARAM_INT);




            $prep->execute();
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function exist($IdAdmin) {
        try {

            $this->open();
            $query = "SELECT * FROM administrateur WHERE ='$IdAdmin';";
            $statement = $this->pdo->query($query);
            return $statement->rowCount();
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

}
